Input: syntax objects

stages:
1. resolve
2. interpret

resolve fixes up bindings so that interpret has less work to do
